/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package observer;

import java.util.ArrayList;

/**
 *
 * @author carlosarboleda
 */
//Subject
public abstract class Banco {


    private String nombreBanco;
    private double monto;
    private double montoAnterior;
    private ArrayList<SociosEmpresa> banco = new ArrayList<SociosEmpresa>();

    // Constructor
    public Banco(String nombreBanco, double monto, double montoAnterior)
    {

      super();

      this.nombreBanco = nombreBanco;
      this.monto = monto;
      this.montoAnterior = montoAnterior;
    }

    public void Attach(SociosEmpresa socio)
    {
      banco.add(socio);
    }

    public void Detach(SociosEmpresa socio)
    {
      banco.remove(socio);
    }

    public void Notify()
    {

      for (int i = 0; i < banco.size(); i++) {
            SociosEmpresa o = (SociosEmpresa) banco.get(i);
            o.Update(this);

        }

      System.out.println("");



}

    /**
     * @return the nombreBanco
     */
    public String getNombreBanco() {
        return nombreBanco;
    }

    /**
     * @param nombreBanco the nombreBanco to set
     */
    public void setNombreBanco(String nombreBanco) {
        this.nombreBanco = nombreBanco;
    }

    /**
     * @return the monto
     */
    public double getMonto() {
        return monto;
    }

    /**
     * @param monto the monto to set
     */
    public void setMonto(double monto) {
       if (this.monto != monto)
        {
          this.monto = monto;
          Notify();
        }

        
    }

    /**
     * @return the montoAnterior
     */
    public double getMontoAnterior() {
        return montoAnterior;
    }

    /**
     * @param montoAnterior the montoAnterior to set
     */
    public void setMontoAnterior() {
        this.montoAnterior = monto;
    }
}